vlwkaos' digital garden

IntersectionObserver polyfill 살펴보기

소스코드

  • 우선 브라우저 window object에 intersectionObserver가 있는지 판단.

  • monitorIntersections에서 탐지

    • 그전에 rootIsInTarget, rootIsInDom
  • 100ms throttle 걸린 _checkForIntersections 에서 target이 들어오는지 확인 후, IntersectionObserverEntry를 생성하기 위해 연관 DOMRect들을 넘김. Entry는 viewport에 들어온 target에 대한 정보를 담고 있는 구조

  • IntersectionObserverEntry는 화면에 보이는 비율 등을 계산한 값을 object property에 넣어줌.

  • 만들어진 entry는 queue_observationTarget에 넣고 callback처리

  • utility성 함수로 ensureDOM과 같은 함수가 있음. 오브젝트 구조(어떤 속성이 있는지)를 이용해서 type assertion을 함.

  • crossOriginRect???

IntersectionObserver polyfill 살펴보기